IDL Programming

IDL Programming

Concepts

IDL Data Types

Dynamic Data Typing

Compound Data Types

Data Type and Structure of Expressions

The Null Variable

Type Conversion Functions

Creating and Defining Structures

Relaxed Structure Assignment

Structure References

Defining and Using Constants

IDL Pointers

Freeing Pointers

Operations on Pointers

Pointer Examples

Arrays

Array Subscript Ranges

Columns, Rows, and Array Majority

Combining Array Subscripts

Manipulating Arrays

Using Scalar Values as Array Subscripts

Using Arrays as Array Subscripts

Understanding Array Subscripts

Conditionally Altering Array Elements

Concatenating Arrays

Arrays of Structures

Parameters

Parameter Passing Mechanism

Operators

Logical Operators

Mathematical Operators

Relational Operators

Operator Precedence

Matrix Operators

Other Operators

Minimum and Maximum Operators

Code Libraries

Advice for Library Authors

Converting Existing Code Libraries

System Variables

IDL Environment System Variables

Constant System Variables

Error Handling System Variables

Variables

Monitoring Variable Values

Assignment Operations and Arrays

Assignment and Compound Assignment

Saving Variables from an IDL Session

Environment Variables

String Operations

Comparing Strings

Finding the Length of a String

Case Folding

Substrings

IDL Features to Help You Develop Code

Automatic Compilation and Execution

Reserved Words

Learning About Regular Expressions

Automatic Garbage Collection

Date/Time Data

Supported Devices

Format Codes

Using Explicitly Formatted Input/Output

Using HELP with Structures

Virtual Memory

Tasks

Using Procedures, Functions, SAVE Files

Overview of IDL Program Types

Defining a Procedure

Defining a Function

Using Keyword Parameters

Determining if a Keyword is Set

Recognizing Potential Naming Conflicts

Overview of SAVE Files

Creating SAVE Files of Program Files

Executing SAVE Files

Setting Preferences

About IDL System Preferences

!CPU Settings Preferences

Directory and Search Path Preferences

General User Environment Preferences

Windows Graphics Preferences

X Window System Graphics Preferences

General Graphics Preferences

Windows Runtime Preferences

Error Handling

Controlling and Recovering from Errors

Creating Custom Error Messages

Error Handling System Variables

Math Errors

Fonts and Colors

Using Device Fonts

Using Hershey Vector Fonts

Using TrueType Fonts

Embedded Formatting Commands

Loading Default Color Tables

Code Commenting with IDLdoc

Code Comments

Formatting IDLdoc Comment Blocks

IDLdoc Comment Tags

IDLdoc Resources

Using IDLdoc to Generate Documentation

Distributing IDL Applications

Runtime Mode Applications

Virtual Machine Applications

Callable IDL Applications

Creating a Runtime Distribution

Creating Video

Internationalizing Code

Interrupting or Aborting Execution

Controlling the IDL Thread Pool

Extending ENVI with IDL

ENVI Extension Wizard

Program Control

Overview of Program Control

Definition of True and False

CASE Versus SWITCH

Bitwise Operators

Jump Statements

Compound Statements

Objects

The Basics of Using IDL Objects

Creating an Object Graphics Display

Creating Custom Objects

Operator Overloading

Analysis Object Classes

IDLanROI

IDLanROIGroup

File Format Object Classes

IDLffDICOM

IDLffDXF

IDLffJPEG2000

IDLffLangCat

IDLffMJPEG2000

IDLffMrSID

IDLffShape

IDLffVideoWrite

IDLffXMLDOM Classes

IDLffXMLDOMAttr

IDLffXMLDOMCDATASection

IDLffXMLDOMCharacterData

IDLffXMLDOMComment

IDLffXMLDOMDocument

IDLffXMLDOMDocumentFragment

IDLffXMLDOMDocumentType

IDLffXMLDOMElement

IDLffXMLDOMEntity

IDLffXMLDOMEntityReference

IDLffXMLDOMNamedNodeMap

IDLffXMLDOMNode

IDLffXMLDOMNodeIterator

IDLffXMLDOMNodeList

IDLffXMLDOMNotation

IDLffXMLDOMProcessingInstruction

IDLffXMLDOMText

IDLffXMLDOMTreeWalker

IDLffXMLSAX

Graphics Object Classes

IDLgrAxis

IDLgrBuffer

IDLgrClipboard

IDLgrColorbar

IDLgrContour

IDLgrFilterChain

IDLgrFont

IDLgrImage

IDLgrLegend

IDLgrLight

IDLgrModel

IDLgrPalette

IDLgrPattern

IDLgrPDF

IDLgrPlot

IDLgrPolygon

IDLgrPolyline

IDLgrPrinter

IDLgrROI

IDLgrROIGroup

IDLgrScene

IDLgrShader

IDLgrShaderBytscl

IDLgrShaderConvol3

IDLgrSurface

IDLgrSymbol

IDLgrTessellator

IDLgrText

IDLgrTextEdit

IDLgrView

IDLgrViewgroup

IDLgrVolume

IDLgrVRML

IDLgrWindow

Miscellaneous Object Classes

IDL_Container

IDLdbDatabase

IDLdbRecordset

IDL_IDLBridge

IDL_Object

IDL_Savefile

IDLcomIDispatch

IDLitComponent

IDLitWindow

IDLjavaObject

IDLsysMonitorInfo

TrackBall

Network Object Classes

About Network Objects

IDLnetOGCWCS

IDLnetOGCWMS

IDLnetURL

Interfaces (Widgets)

User Interface Options in IDL

Creating Widget Applications

About Widgets

About Widget Applications

Widget Programming Concepts

Widget Application Lifecycle

Manipulating Widgets

Working With Widget IDs

Widget Event Processing

Managing Application State

Creating a Compound Widget

Example: Compound Widget

Debugging Widget Applications

Widget Application Techniques

Working with Widget Events

Using Multiple Widget Hierarchies

Creating Menus

Tips on Creating Widget Applications

Enhancing Widget Application Usability

About Button Widgets

Bitmap Button Labels

Tooltips

Exclusive and Non-Exclusive Buttons

About Draw Widgets

Using Direct Graphics in Draw Widgets

Using Object Graphics in Draw Widgets

Scrolling Draw Widgets

Draw Widget Example

Accessing Draw Widget Events

Implementing Drag and Drop Functionality

About Property Sheet Widgets

Registering Properties

Selecting Properties

Changing Properties

User-defined Properties

Property Sheet Sizing

Property Sheet Example

Multiple Properties Example

About Table Widgets

Default Table Size

Table Widget Selection Modes

Table Widget Data Types

Table Widget Data Retrieval

Table Widget Edit Mode

Table Widget Cell Attributes

Example: Single Data Type Data in a Table Widget

Example: Structure Data in a Table Widget

About Tab Widgets

Example: A Simple Tab Widget

Tab Sizing and Multiline Behavior

Example: Retrieving Values

About Tree Widgets

Types of Tree Widgets

Example: A Simple Tree

Setting the Tree Selection State

Making a Tree Entry Visible

Replacing the Default Bitmaps

Dragging and Dropping Tree Nodes

Tree Widget Drag and Drop Examples

Positioning Tree Nodes

Using_Tree_Widget_Checkboxes

About Runtime Distributions

Providing Help Within the User Interface